package br.com.fatecjp.pooai.gerenciador.taxi.message.parser;

import br.com.fatecjp.pooai.gerenciador.taxi.ambiente.Posicao;
import br.com.fatecjp.pooai.gerenciador.taxi.message.ConteudoMensagemAgente;

public class RespostaRegistroTaxiParser extends
		ConteudoMensagemAgenteParser {

	public boolean hasComplemento() {
		return true;
	}

	public String converterComplemento(ConteudoMensagemAgente source) {

		String complemento = null;
		
		if (source.getConteudo() != null && source.getConteudo().length > 0) {
			Object posicaoTaxiObj = source.getConteudo()[0];
			if (posicaoTaxiObj != null) {
				Posicao posicao = (Posicao) posicaoTaxiObj;
				complemento = posicao.getX() + SEPARADOR + posicao.getY()
						+ SEPARADOR;
			}
		}
		
		return complemento;

	}

	public Object[] extrairComplemento(String[] partes) {

		Object[] complemento = null;

		if (partes != null && partes.length > 0) {

			Integer posicaoXTaxi = null;
			try {
				posicaoXTaxi = new Integer(partes[0]);
			} catch (NumberFormatException ex) {
				throw new IllegalArgumentException(ex);
			}

			Integer posicaoYTaxi = null;
			try {
				posicaoYTaxi = new Integer(partes[1]);
			} catch (NumberFormatException ex) {
				throw new IllegalArgumentException(ex);
			}

			complemento = new Object[] { new Posicao(posicaoXTaxi.intValue(),
					posicaoYTaxi.intValue()) };

		}

		return complemento;

	}

}
